package com.example.demo.controller;

import com.auth0.jwt.JWT;
import com.example.demo.entity.VO.LoginUser;
import com.example.demo.utils.JWTUtils;
import com.example.demo.utils.PassToken;
import com.example.demo.utils.ServiceResponse;
import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;

@RestController
public class TestController {
    @Autowired
    RedisTemplate<String, Object> redisTemplate;

    @GetMapping("/test")
    public String test() {
        String s = (String) redisTemplate.opsForValue().get("data");
        redisTemplate.opsForValue().set("age", "21", 20, TimeUnit.SECONDS);
        return s;
    }
//    @PostMapping("/login")
//    public ServiceResponse<String> login(@RequestBody LoginUser loginUser) {
//        //先判断验证码是否正确
//        //1如何从redis取出保存的验证码
//        String storeCode = (String) redisTemplate.opsForValue().get("captcha_codes:" + loginUser.getUuid());
//        //2用户输入的验证码和storeCode比对
//        if (loginUser.getCode().equals(storeCode)) {
//            String id = loginUser.getUsername();
//            String pwd = loginUser.getPassword();
//            Map<String, String> map = new HashMap<>();
//            map.put("username", id);
//            map.put("password", pwd);
//            if (id.equals("admin") && pwd.equals("admin")) {
//                String token = JWTUtils.getToken(map);
//                return ServiceResponse.createBySuccess(200, token, "登陆成功");
//            }
//            return ServiceResponse.createBySuccess(500, "", "用户名或密码错误");
//
//        } else {
//            return ServiceResponse.createBySuccess(500, "", "验证码错误");
//        }
////        String id =(String) map.get("username");
////        String pwd =(String) map.get("password");
//
//    }

    @PassToken
    @GetMapping("/getStudents")
    public ServiceResponse<String> getStudents() {
        return ServiceResponse.createBySuccess(200, "", "查询成功");
    }

    //    @GetMapping("/getInfo")
//    public ServiceResponse<String> getInfo(HttpServletRequest request){
//        String token = request.getHeader("Authorization");
//        System.out.println(token+" ");
//        String id = JWT.decode(token.substring(token.lastIndexOf(" ")+1)).getClaim("username").asString();
//        return ServiceResponse.createBySuccess(200,id,"查询成功");
//    }
    @PassToken
    @GetMapping("/getBanners")
    public ServiceResponse<List<String>> getBanners() {
        List<String> list = new ArrayList<>();
        list.add("/images/cat.jpg");
        list.add("/images/padaxing.jpg");
        return ServiceResponse.createBySuccess(200, list, "显示轮播图");


    }
}

